<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:py="http://genshi.edgewall.org/"
      xmlns:xi="http://www.w3.org/2001/XInclude">

<xi:include href="master.html" />

<head>
    <meta content="text/html; charset=UTF-8" http-equiv="content-type" py:replace="''"/>
    <title>Welcome to TurboGears</title>
</head>
<body><div style="text-align:left;display:block;margin-right:auto;margin-left:auto">
    HotOrNot uses facial detection software to detect and extract facial features, and uses Support Vector Machine to predict its score against the HotOrNot photo database.
</div>
<div style="display:block;margin-right:auto;margin-left:auto;text-align:center"><br/>
</div>
<div style="display:block;margin-right:auto;margin-left:auto;text-align:center">
        <img border="0" src="static/images/proj.png"/>
</div>
<div style="display:block;text-align:left"><br/>
</div>
<p align="center" style="text-align:center"><span lang="EN-US">Figure
1: Overview of HotOrNot Score Predictor</span></p>

<p style="text-align:justify;text-justify:inter-ideograph"><span lang="EN-US">From figure 1, we can divide our project into 3 phases as follows:</span></p>

<p style="text-align:justify;text-justify:inter-ideograph"><span lang="EN-US"><span><span>&nbsp;&nbsp; &nbsp;<span>&nbsp;&nbsp;</span></span>1.<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span lang="EN-US">Input Phase</span></p>

<p style="text-align:justify;text-justify:inter-ideograph;text-indent:36.0pt"><span lang="EN-US"><span>&nbsp;</span>In this part, we create crawler program to get
thousands of images from HotOrNot.com, which is one of the most popular rating
site that allows users to rate the attractiveness of photos<a href="http://en.wikipedia.org/wiki/Photo" rel="nofollow" title="Photo"></a> submitted
voluntarily by others.<span>&nbsp; </span>The images will
be extracted from the website with its score to show how attractiveness it is.
Although, there are millions of images in the website, some of them are
inappropriate for our project. For example, some images such as a girl in the
bikini may have a higher score than another because of her body not her face or
some images that show less than 50% of their face. So, in the next step, we try
to eliminate those images from our system by using the photo filter. One
technique that we use in photo filter is skin detection. In this step, the
images which have percent of the skin greater than 70% of the whole image will
be eliminated.<span>&nbsp; </span>After that, the result
images will be stored in the database as our input.</span></p>
<p style="text-align:justify;text-justify:inter-ideograph;text-indent:36.0pt"><span lang="EN-US">The next step in this phase is to extract the facial feature form
those images and use those feature as an input for the analysis phase. In this
step, we call one of ‘Luxand’ library which is called ‘Facial Feature
Detection’ to extract the facial feature from the images. Using the Luxand
library, we get 40 attributes as show in the Figure 2 and the facial feature
name as show in Table 1:</span></p>

<div style="display:block;margin-right:auto;margin-left:auto;text-align:center">
        <img border="0" src="static/images/face.png"/>
</div>
<p style="text-align:center;margin-left:35.45pt;text-indent:36.55pt"><span lang="EN-US">Figure 2: Example result image from Luxand facial feature detection</span></p>
<table border="1" cellpadding="0" cellspacing="0" style="text-align:right;margin-left:35.45pt;border-collapse:collapse;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;border-width:initial;border-color:initial;margin:0px auto">
 
<tbody>
<tr>
  
<td style="width:210.95pt;border:solid black 1.0pt;padding:0cm 5.4pt 0cm 5.4pt" valign="top" width="281">
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Facial Feature Name</span></p>
  </td>
  
<td style="width:212.6pt;border:solid black 1.0pt;border-left:none;padding:0cm 5.4pt 0cm 5.4pt" valign="top" width="283">
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Facial Feature Name</span></p>
  </td>
 </tr>
 
<tr>
  
<td style="width:210.95pt;border:solid black 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt" valign="top" width="281">
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Face Conture 1</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Face Conture 2</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Face Conture 3</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Face Conture 4</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Face Conture 5</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Face Conture 6</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Face Conture 7</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Face Conture 8</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Face Conture 9</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Face Conture 10</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Face Conture 11</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Face Conture 12</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Face Conture 13</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Left Eye</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Left Eye Inner Corner</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Left Eye Outer Corner</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Right Eye</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Right Eye Inner Corner</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Right Eye Outer Corner</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Left Eye Brow Inner Corner</span></p>
  </td>
  
<td style="width:212.6pt;border-top:none;border-left:none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;padding:0cm 5.4pt 0cm 5.4pt" valign="top" width="283">
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Left Eye Brow Middle</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Left Eye Brow Outer Corner</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Right Eye Brow Inner Corner</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Right Eye Brow Middle</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Right Eye Brow Outer Corner</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Nose Tip</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Nose Bridge</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Nose Left Wing</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Nose Right Wing</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Mouth Left Corner</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Mouth Right Corner</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Mouth Top</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Mouth Bottom</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Mouth Left Top</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Mouth Right Top</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Mouth Left Bottom</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Mouth Right Bottom</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Chin Bottom</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Chin Left</span></p>
  
<p style="margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;line-height:normal"><span lang="EN-US">Chin Right</span></p>
  </td>
 </tr>
</tbody>
</table>

<p align="center" style="margin-left:35.45pt;text-align:center"><span lang="EN-US">Table 1: Facial Feature Name</span></p>
<p style="text-align:left;margin-left:35.45pt"><span lang="EN-US">We calculate and
normalize the position of these features in the image as input data for the
analysis phase.<span>&nbsp;&nbsp;</span></span></p>

<p style="text-align:justify;text-justify:inter-ideograph"><span lang="EN-US"><span>2.<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span lang="EN-US">Analysis Phase</span></p>
<p style="text-align:justify;text-justify:inter-ideograph"><span lang="EN-US">We focus on two data mining approaches Artificial Neural Network
(ANN) and Support Vector Machine (SVM) to determine which approach</span></p>
<p style="text-align:justify;text-justify:inter-ideograph"><span lang="EN-US">is the best
choice for our project.<span>&nbsp;</span></span></p>
<p style="text-align:justify;text-justify:inter-ideograph"><span lang="EN-US"><span>In this step, we use the facial features that we get from the first
step as input of ANN and SVM as show in the following</span></span></p>

<p style="margin-left:99.25pt;text-align:justify;text-justify:inter-ideograph"><span lang="EN-US"><span>1.1<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span lang="EN-US">Face height = max(Face
Contour.y) - min(Face Contour.y) </span></p>

<p style="margin-left:99.25pt;text-align:justify;text-justify:inter-ideograph"><span lang="EN-US"><span>1.2<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span lang="EN-US">Face width = max(Face
Contour.x) - min(Face Contour.x) </span></p>

<p style="margin-left:99.25pt;text-align:justify;text-justify:inter-ideograph"><span lang="EN-US"><span>1.3<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span lang="EN-US">Left eye height = Chin Left –
Left Eye</span></p>

<p style="margin-left:99.25pt;text-align:justify;text-justify:inter-ideograph"><span lang="EN-US"><span>1.4<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span lang="EN-US">Right eye height = Chin Right-
Right Eye</span></p>

<p style="margin-left:99.25pt;text-align:justify;text-justify:inter-ideograph"><span lang="EN-US"><span>1.5<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span lang="EN-US">Left eye length = Left Eye
Inner Corner – Left Eye Outer Corner</span></p>

<p style="margin-left:99.25pt;text-align:justify;text-justify:inter-ideograph"><span lang="EN-US"><span>1.6<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span lang="EN-US">Right eye length = Right Eye
Inner Corner – Right Eye Outer Corner</span></p>

<p style="margin-left:99.25pt;text-align:justify;text-justify:inter-ideograph"><span lang="EN-US"><span>1.7<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span lang="EN-US">Distance between eyes = Left
Eye Inner Corner – Right Eye Inner Corner</span></p>

<p style="margin-left:99.25pt;text-align:justify;text-justify:inter-ideograph"><span lang="EN-US"><span>1.8<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span lang="EN-US">Nose height = Chin Bottom – Nose
Tip</span></p>

<p style="margin-left:99.25pt;text-align:justify;text-justify:inter-ideograph"><span lang="EN-US"><span>1.9<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span lang="EN-US">Nose width = Nose Right Wing –
Nose Left Wing</span></p>

<p style="margin-left:99.25pt;text-align:justify;text-justify:inter-ideograph"><span lang="EN-US"><span>1.10<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span lang="EN-US">Nose length = Nose Bridge – Nose
Tip</span></p>

<p style="margin-left:99.25pt;text-align:justify;text-justify:inter-ideograph"><span lang="EN-US"><span>1.11<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span lang="EN-US">Chin width = Chin Right – Chin
Left</span></p>
<p style="text-align:left;text-justify:inter-ideograph"><span lang="EN-US"><span>&nbsp;&nbsp; &nbsp;<span>&nbsp;&nbsp; &nbsp;<span>&nbsp;&nbsp; &nbsp;<span>&nbsp;</span></span></span></span>By using these
attributes, the result from ANN and SVN still are not satisfyingly.<span>&nbsp; </span>So, we try to find additional attributes or
features that may improve the result of both approaches such as the skin color,
eye color or hair color. Moreover we also try to find an appropriate mathematic
model that match our input set.</span></p>

<p style="text-align:left;margin-left:35.45pt"><span lang="EN-US"><span>

</span></span></p>
<p style="text-align:justify;text-justify:inter-ideograph"><span lang="EN-US"><span>3.<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span lang="EN-US">Output Phase</span></p>
<p style="text-align:justify;text-justify:inter-ideograph"><span lang="EN-US"><span>&nbsp;&nbsp; &nbsp;<span>&nbsp;&nbsp; &nbsp;<span>&nbsp;&nbsp; &nbsp;<span>&nbsp;</span></span></span></span>Giving an input image, our system will try to predict the score of
the input image based on the training set which we get from HotOrNot.com. This
phase of the system isn’t started yet, but we plan to start it as soon as we
get the satisfying result from the analysis phase.</span><span lang="EN-US"><br/>
</span></p>
<p style="text-align:justify;text-justify:inter-ideograph"><span lang="EN-US"><br/>
</span></p>
<p style="text-align:justify;text-justify:inter-ideograph"><span lang="EN-US">Code is available at&nbsp;<a href="http://code.google.com/p/capcourseproj/">http://code.google.com/p/capcourseproj/</a>&nbsp;. Apart from the face detector, everything is written in Python 2.6.4. The facial feature extractor needs .NET framework.</span></p>
<p style="text-align:justify;text-justify:inter-ideograph"><span lang="EN-US"><br/>
</span></p>

</body>
</html>
